<?php

session_start();
error_reporting(E_ALL);
ini_set("display_errors", 1);

/* Open een output buffer
 * Waarom: De output buffer wordt pas geleegd aan het einde van het PHP script en 
 * PHP kan dus alle header() functies gewoon 'midden in de pagina' uitvoeren aangezien er nog geen HTML is ge-output.
 */
ob_start();

require("lib/db/db.php");
require("lib/login.php");
require("lib/ballon.php");
require("lib/utilities.php");
require("lib/vacatures.php");

/* Wat we gaan doen is als volgt:
 * - We leggen een connectie met de database (check db.php)
 * - We halen info uit de URL betreffende de doelgroep en pagina, indien aanwezig
 * - We gaan kijken of de gebruiker al ingelogd is
 * - Indien de URL niet compleet is, maak deze dan compleet
 * - We gaan de navigatieballon tonen op basis van een gegeven id & doelgroep
 * - We gaan de content tonen op basis van een gegeven id & doelgroep
 * - We gaan chillen
 */
db_Connect();

// Zet standaardwaardes
$SiteType = "student";
$SitePage = "home";

// Bepaal Type en ID aan de hand van de URL (indien aanwezig)
if(isset($_GET['type'], $_GET['id'])) {
    switch($_GET['type']) {
        case "student":
            $SiteType = "student";
            break;
        case "bedrijf":
            $SiteType = "bedrijf";
            break;
    }
	$SitePage = $_GET['id'];
}

// Indien gebruiker login cookies heeft, log hem dan daarmee in
login_CookieLogin();

// Als de URL incompleet is, stuur de gebruiker dan naar een logische locatie:
// Ingelogd: profielpagina
// Niet Ingelogd: home
util_ValideerURL();

// HTML begin
require("content/header.php");

// De ballonfase
// Kies aan de hand van de pagina id een weergave voor de navigatieballon
switch($SiteType) {
    case "student":
		ballon_ToonStudentNavigatie($SitePage);
			switch($SitePage) {
				case "home":
					ballon_ToonStudentHome();
					break;
				case "zoeken":
					ballon_ToonStudentZoeken();
					break;
				case "zoekresult":
					ballon_ToonStudentHome();
					break;
				case "uitgebreidzoekresult":
					ballon_ToonStudentZoeken();
					break;
				case "edite":
					ballon_ToonEditeProfiel();
					break;
				case "profiel":
					if(student_IsIngelogd()) {
						$profiel = db_StudentProfiel($_SESSION['student_id']);
						ballon_ToonStudentProfiel($profiel['voornaam']);
					} else {
						ballon_ToonStudentHome();
					}
					break;
				case "registratie":
					ballon_ToonStudentRegistratie();
					break;
				case "view":
					ballon_ToonVacature();
					break;
				case "login":
					ballon_ToonLogin();
					break;
				case "contact":
					ballon_ToonContact();
					break;
				case "logout":
					student_Logout();
					break;
				case "help":
					ballon_ToonHelp();
					require("doc/help.html");
					break;
				case "sitemap":
					ballon_ToonSiteMap();
					break;
				case "lostpass":
					ballon_ToonLostPass();
					break;
				case "newpass":
					ballon_ToonNewPass();
					break;
				case "plaatsopdracht":
					ballon_ToonBedrijfPlaatsOpdracht();
					break;
				case "inbox":
					if(student_IsIngelogd()) {
						$profiel = db_StudentProfiel($_SESSION['student_id']);
						ballon_ToonInbox($profiel['voornaam']);
					} else {
						ballon_ToonStudentHome();
					}
				break;
			}
			break;
        
    case "bedrijf":
		ballon_ToonBedrijfNavigatie($SitePage);
			switch($SitePage) {
				case "home":
					ballon_ToonBedrijfHome();
					break;
				case "login":
					ballon_ToonLogin();
					break;
				case "view":
					ballon_ToonVacature();
					break;
				case "viewprof":
					ballon_ToonViewProfiel();
					break;
				case "registratie":
					ballon_ToonBedrijfRegistratie();
					break;
				case "edite":
						ballon_ToonEditeProfiel();
						break;
				case "profiel":
					if(bedrijf_IsIngelogd()) {
						$profiel = db_BedrijfProfiel($_SESSION['bedrijf_id']);
						ballon_ToonBedrijfProfiel($profiel['naam']);
					} else {
						ballon_ToonBedrijfHome();
					}
					break;
				case "contact":
					ballon_ToonContact();
					break;
				case "zoekresult":
					ballon_ToonZoekResultaten();
					break;
				case "mail":
					if(bedrijf_IsIngelogd()) {
						$profiel = db_StudentProfiel($_GET['num']);
						ballon_Toon('<h1>Mail</h1>', '');
					} else {
						ballon_ToonBedrijfHome();
					}
					break;
				case "plaatsopdracht":
					ballon_ToonBedrijfPlaatsOpdracht();
					break;
				case "logout":
					bedrijf_Logout();
					break;
				case "help":
					ballon_ToonHelp();
					require("doc/help.html");
					break;
				case "lostpass":
					ballon_ToonLostPass();
					break;
				case "sitemap":
					ballon_ToonSiteMap();
					break;
				case "newpass":
					ballon_ToonNewPass();
					break;
			}
			break;
}
?>

<div id="content-wrapper">

<?php 
// De contentfase
// Kiest weer aan de hand van id de content en wrapped 't zonodig in div's
switch($SiteType) {
    case "student":
        switch($SitePage) {
            case "home":
                // Recente opdrachten
                echo "<div id='right-content'>";
                echo "<h1>Recente Opdrachten</h1>";
                //$recente_Vacs = db_RecenteVacatures(7);
				//vacatures_Beknopt($recente_Vacs);
                echo "</div>";
                
                // Nieuws
                require("lib/nieuws.php");
                echo "<div id='left-content' class='nieuws'>";
                $nieuws = db_Nieuws();
                nieuws_Toon($nieuws);
                echo "</div>";
                break;
            case "registratie":
                require("content/forms/form_student_registratie.php");
                break;
            case "zoekresult":
                $resultaten = db_Zoeken($_GET['trefwoord']);
                vacatures_ToonResultaten($resultaten, $_GET['trefwoord']);
                break;
			case "uitgebreidzoekresult":
				require("lib/zoeken.php");
				$zoektermen = zoeken_HaalZoekTermen();
				
				$begin_op = isset($_GET['begin-op']) ? $_GET['begin-op'] : 0;
				
                $resultaten = db_Zoeken($zoektermen, true, $begin_op);
                vacatures_ToonResultaten($resultaten, $zoektermen, true);
                break;
            case "view":
                $vacature = db_VerkrijgBericht($_GET['vac']);
                vacatures_ToonVacature($vacature);
				util_ToonTerug();
                break;
			case "viewreactie":
				$reactie = db_VerkrijgBerichtReactie($_GET['vac']);
				vacatures_ToonReactie($reactie);
				util_ToonTerug();
				break;
			case "edite":
				require("lib/profiel_edite.php");
				$profiel = db_StudentProfiel($_SESSION['student_id']);
				profiel_ToonStudentEditeForm($profiel);
				break;
			case "contact":
				require("content/contact.php");
				util_ToonTerug();
				break;
			case "profiel":
				if(student_IsIngelogd()) {
					require("lib/profiel.php");
					
					// Links
					echo "<div id='left-content'>";
					$profiel = db_StudentProfiel($_SESSION['student_id']);
					profiel_ToonProfiel($profiel);
					echo "</div>";
					
					// Rechts
					$vacatures = db_GereageerdeVacatures($profiel['id']);
					echo "<div id='right-content'>";
					profiel_ToonGereageerdeVacatures($vacatures);
					echo "</div>";
				} else {
					echo "<h2>Beveiligde pagina. <a href='?type=student&id=login'>Log in</a> om deze te bekijken.</h2>";
				}
				break;
            case "login":
				if(isset($_GET['error'])) {
					echo "<h2>Je hebt verkeerde gegevens opgegeven. Probeer het nogmaals.</h2>";
				}
				require("content/forms/form_login.php");
                break;
			case "lostpass":
                require("lib/lostpass.php");
                lostpass_ToonLostPassForm();
                break;
			case "sitemap":
				require("content/sitemap.php");
				util_ToonTerug();
				break;
			case "newpass":
                require("lib/nieuw_wachtwoord.php");
                break;
			case "plaatsopdracht":
				if(student_IsIngelogd()) {
					require("content/forms/form_plaats_vac.php");
				} else {
					echo "<h2>U kunt pas een bericht plaatsen wanneer u <a href='?type=student&id=login'>ingelogd</a> bent.";
					echo "<h2>Wanneer u nog niet geregistreerd bent, registreer u dan <a href='?type=student&id=registratie'>hier</a>.</h2>";
				}
				break;
			case "reactie":
				require("lib/reacties.php");
				$reactie = db_VerkrijgBericht($_GET['vac']);
				reacties_ToonReactieForm($reactie);
			break;
			case "inbox":
				if(student_IsIngelogd()) {
					require("lib/profiel.php");
					require("lib/inbox.php");
					// Links
					$state = $_GET['state'];
					echo "<div id='left-content'>";
					inbox_toonInboxMenu($state);					
					echo "</div>";
					
					// Rechts
					echo "<div id='right-content'>";
					$profiel = db_StudentProfiel($_SESSION['student_id']);
					$ontvangenItems = db_VerkrijgOntvangenBerichten($profiel['id']);
					$verzondenItems = db_VerkrijgReactie($profiel['id']);
					$verwijderdeItems = "";
					$bewaardeItems = "";
					
					inbox_toonBerichten($state, $ontvangenItems, $verzondenItems, $verwijderdeItems, $bewaardeItems);
									
					//profiel_ToonGereageerdeVacatures($vacatures);
					echo "</div>";
				} else {
					echo "<h2>Beveiligde pagina. <a href='?type=student&id=login'>Log in</a> om deze te bekijken.</h2>";
				}
				
			break;
        }
		break;

	case "bedrijf":
        switch($SitePage) {	
			case "home":
				// Recente opdrachten
                echo "<div id='right-content'>";
                echo "<h1>Recente Opdrachten</h1>";
                $recente_Vacs = db_RecenteVacatures();
				vacatures_Beknopt($recente_Vacs);
                echo "</div>";
                
                // Nieuws
                require("lib/nieuws.php");
                echo "<div id='left-content' class='nieuws'>";
                $nieuws = db_Nieuws();
                nieuws_Toon($nieuws);
                echo "</div>";
                break;
			case "registratie":
                require("content/forms/form_bedrijf_registratie.php");
                break;
			case "login":
				if(isset($_GET['error'])) {
					echo "<h2>Je hebt verkeerde gegevens opgegeven. Probeer het nogmaals.</h2>";
				}
                require("content/forms/form_login.php");
                break;
			case "view":
                $vacature = db_VerkrijgBericht($_GET['num']);
                vacatures_ToonVacature($vacature);
				util_ToonTerug();
                break;
			case "contact":
				require("content/contact.php");
				util_ToonTerug();
				break;
			case "viewprof":
				if(bedrijf_IsIngelogd()) {
					require('lib/profiel_weergeven.php');
					$profiel = db_StudentProfiel($_GET['num']);
					profiel_ToonProfiel($profiel);
					util_ToonTerug();
				} else {
					echo "<h2>U kunt pas profielen kijken als u bent <a href='?type=bedrijf&id=registratie'>geregistreerd</a>.</h2>";
				}
				break;
			case "edite":
				require("lib/profiel_edite.php");
				$profiel = db_bedrijfProfiel($_SESSION['bedrijf_id']);
				profiel_ToonBedrijfEditeForm($profiel);
				break;
			case "profiel":
				if(bedrijf_IsIngelogd()) {
					require("lib/profiel.php");
					
					// Links
					echo "<div id='left-content'>";
					profiel_ToonBedrijfProfiel($profiel);
					echo "</div>";
					
					// Rechts
					$vacatures = db_EigenVacatures($_SESSION["bedrijf_id"]);
					echo "<div id='right-content'>";
					profiel_ToonEigenVacatures($vacatures);
					echo "</div>";
				} else {
					echo "<h2>Beveiligde pagina. <a href='?type=bedrijf&id=login'>Log in</a> om deze te bekijken.</h2>";
				}
				break;
			case "plaatsopdracht":
				if(bedrijf_IsIngelogd()) {
					require("content/forms/form_plaats_vac.php");
				} else {
					echo "<h2>U kunt pas opdrachten plaatsen als u bent <a href='?type=bedrijf&id=registratie'>geregistreerd</a>.</h2>";
				}
				break;
			case "lostpass":
                require("lib/lostpass.php");
                lostpass_ToonLostPassForm();
                break;
			case "mail":
				if(bedrijf_IsIngelogd()) {
					require("content/forms/form_bedrijf_mail.php");
					profiel_ToonMailForm($profiel);
				} else {
					echo "<h2>U kunt pas reageren als u bent <a href='?type=bedrijf&id=registratie'>geregistreerd</a>.</h2>";
				}
				break;
			case "send":
				if(bedrijf_IsIngelogd()) {
					require("lib/mail.php");
					$student = db_StudentProfiel($_GET['num']);
					$bedrijf = db_BedrijfProfiel(bedrijf_VerkrijgId());
					mail_MailStudent($student, $bedrijf);
				} else {
					echo "<h2>U kunt pas reageren als u bent <a href='?type=bedrijf&id=registratie'>geregistreerd</a>.</h2>";
				}
				break;
			case "sitemap":
				require("content/sitemap.php");
				util_ToonTerug();
				break;
			case "newpass":
                include("lib/nieuw_wachtwoord.php");
                break;
		}
		break;
}


?>
<!-- #content-wrapper -->
</div>

<div id="footer-block">
</div>

<div id="footer">
<p>Copyright &copy; 2009 Fabian Bergsma</p>
</div>

</body>
</html>